Soru & Cevap

Android Studio Butona 2 sn basmazsam durmalı?

27.06.2019 - 09:38
 try {
                            timer1.wait(2000);
                            if (btn1.getId()==R.id.btn_1 || btn2.getId()==R.id.btn_2 || btn3.getId()==R.id.btn_3 || btn4.getId()==R.id.btn_4){
                                handler2.removeCallbacks(runnable2);
                                timer_value = (TextView) findViewById(R.id.timer_value);
                                timer_value.setText(timer1.getText());
                                handler.removeCallbacks(runnable);
                                liste_uc.add(timer_value.getText().toString());
                                //builder.show();
                            }
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }

Şimdi dört adet butonum var ve bu butonlara eğer 2 saniye boyunca basmazsam program hata vermeli, durmalı yani.. Bunu nasıl yapabilirim?

8 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user f.erenyucal
f.erenyucal
18.02.2023 - 04:01

Merhabalar Özge hanım, kodlarınızı detaylıca inceledim. Bu kod parçasında "wait" metodunu kullanmışsınız, ancak "wait" metodu bir Thread metodu olduğundan, bu kod parçasını çalıştıran Thread'in bekletilmesine neden olacaktır. Bu nedenle, bu yaklaşım yerine bir CountDownTimer kullanabilirsiniz. CountDownTimer, belirli bir süre boyunca geri sayım yapmak için kullanılan bir sınıftır

Ayrıca, "handler" ve "runnable" kullanarak geri sayım işlemini yaptığınızı varsayıyorum. Bu nedenle, geri sayım tamamlandığında veya kullanıcının belirli bir butona tıkladığında geri sayımı durdurmak için "CountDownTimer.cancel()" metodunu kullanabilirsiniz

Örnek kod parçası aşağıdaki gibi olabilir:

 

CountDownTimer countDownTimer = new CountDownTimer(2000, 1000) {
    @Override
    public void onTick(long millisUntilFinished) {
        // Geri sayım sürerken yapılacak işlemler
    }

    @Override
    public void onFinish() {
        // Geri sayım tamamlandığında yapılacak işlemler
        // Örneğin, programı durdurabilirsiniz.
    }
};

// Butona tıklandığında geri sayımı durdurmak için
btn1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        countDownTimer.cancel();
        // Buton 1'e tıklandığında yapılacak işlemler
    }
});

btn2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        countDownTimer.cancel();
        // Buton 2'ye tıklandığında yapılacak işlemler
    }
});

btn3.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        countDownTimer.cancel();
        // Buton 3'e tıklandığında yapılacak işlemler
    }
});

btn4.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        countDownTimer.cancel();
        // Buton 4'e tıklandığında yapılacak işlemler
    }
});

// Geri sayımı başlatmak için
countDownTimer.start();